The invention relates generally to video graphics processing and more particularly to a method and apparatus for memory bandwidth allocation and control in a video graphics system.
Video information and graphical information are being combined in an increasing number of applications. Examples include video displays with animated graphical icons, on-screen menus, and a pop-up world-wide web browser. In these applications, the processing circuitry that prepares the video and graphical images for display must accommodate the requirements of both the video information and the graphical information. Because both of these types of information can consume large amounts of system bandwidth, speed limitations within the system can corrupt the video and/or graphical information during processing, thus resulting in errors when it is displayed.
In a system that displays video information and graphical information, and bother types of information are stored in the same memory structure, bandwidth limitations of the memory can cause bottlenecks which lead to corruption of the eventual output data stream provided to a display. In typical mixed video and graphics systems, video information is the first priority, as corruption within the video data stream is more noticeable and difficult to correct. In order to allow the video information and the graphical information within the system to be processed effectively and quickly such that corruption does not result, efficient use of existing bandwidth is essential.
For example, in a system that includes an MPEG video stream that requires a great deal of fetching from and storing to the memory in order to generate successive images, the amount of bandwidth consumed by these processing activities can be substantial. Combining this processing intensive bandwidth with the bandwidth required for the storage of an incoming video data stream, storage of incoming graphics images, and the fetching of these various images for display places demands on the memory that make efficient use of the limited memory bandwidth critical. In systems that display video information in real time, overloading memory bandwidth can starve one or more blocks in the system of the data it requires, thus causing images to be lost or corrupted on the display.
In prior art systems, these bandwidth considerations were not paramount, as video information and graphical information were often sourced separately and combined in a different manner that was less intertwined. In such cases, bandwidth limitations of a memory would typically effect only one of the two data sources. IIowever, in systems which attempt to more fully integrate the video and graphics information storage and processing, these bandwidth limitations are magnified as both sets of data are handled by the same processing system, often utilizing a common memory structure.
Although one solution to the bandwidth problem might include expanding the bandwidth of the memory either by adding additional individual memory blocks or increasing the number of access ports or processors dealing with the memory, these solutions increase costs. These costs are incurred both in additional die area on the integrated circuit, and also in the additional complexity added to the system. As video graphics circuits continue to evolve, integration of the video processing and graphics processing portions of the system are important for both economic and functional reasons. For this reason, expanding the bandwidth of the memory through the addition of more memory or additional ports is undesirable.
Even when sufficient memory bandwidth is available to satisfy the needs of all of the clients within the system, starvation of one or more clients can still result if one of the other clients ties up the memory for too great of a time period. If one memory client is allowed to utilize the memory for an extended period of time, additional bandwidth will have to be provided for the memory to ensure that other clients in the system are able to perform their accesses in a timely manner. This additional bandwidth adds cost to the system and is therefore undesirable.
Therefore a need exists for a method and apparatus for allocating the available memory bandwidth in a video graphics system in such a way that the needs of all memory clients in the system are adequately met.